//package util;
//
//import android.content.ContentResolver;
//import android.content.Context;
//import android.database.Cursor;
//import android.net.Uri;
//
//
//import android.provider.ContactsContract;
//import android.text.TextUtils;
//import android.widget.Toast;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Locale;
//
//
//import common.db.Constants;
//
//
///**
// * Created by lepu on 2014/12/30.
// */
//public class ContactsUtil {
//
//    public static List<ContactsContract.Contacts> getPhoneContacts(Context context) {
//        List<ContactsContract.Contacts> mAllContactsList = new ArrayList<ContactsContract.Contacts>();
//        ContentResolver resolver = context.getContentResolver();
//
////        // 获取手机联系人
////        Cursor phoneCursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
////                new String[]{ContactsContract.CommonDataKinds.Phone.CONTACT_ID, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
////                        ContactsContract.CommonDataKinds.Phone.NUMBER},
////                null, null, null);
////        if (phoneCursor != null) {
////            while (phoneCursor.moveToNext()) {
////                String phoneNumber = phoneCursor.getString(2);
////                String username = phoneCursor.getString(1);
////
////                // 当手机号码为空的或者为空字段 跳过当前循环
////                if (TextUtils.isEmpty(phoneNumber)) {
////                    continue;
////                    // 得到联系人名称
////                }
////                Contacts constants = new Contacts();
////                constants.setName(username);
////                constants.setNumber(phoneNumber);
////                constants.setStatus(0);
////                list.add(constants);
////            }
////            phoneCursor.close();
////        }
//        try {
//            Cursor phoneCursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, "sort_key"}, null, null, "sort_key COLLATE LOCALIZED ASC");
//            if (phoneCursor == null) {
//                //todo 弹框
////            Toast.makeText(context, R.string.no_contact_permission, Toast.LENGTH_SHORT).show();
////                Boolean isDoctorType = AppContext.getAppContext().getApplicationType() == Constants.AppTypes.DOCTOR;
////                final CommonPopUpWindow tipPopWindow = new CommonPopUpWindow(context, R.layout.dialog_send_success);
////                View popView = tipPopWindow.getPoPView();
////                tipPopWindow.registerDismissClick(R.id.layout_bg);
////                tipPopWindow.registerDismissClick(R.id.txt_yes);
////
////                TextView txt_yes = (TextView) popView.findViewById(R.id.txt_yes);
////                txt_yes.setBackgroundColor(isDoctorType ? context.getResources().getColor(R.color.bg_title) : context.getResources().getColor(R.color.bg_title_patient));
////                TextView txt = (TextView) popView.findViewById(R.id.txt_content);
////                txt.setText(R.string.no_contact_permission);
////                return null;
//            }
//            if (phoneCursor.getCount() == 0) {
//                //Toast.makeText(context, R.string.no_contact, Toast.LENGTH_SHORT).show();
//                return null;
//            }
//            int PHONES_NUMBER_INDEX = phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
//            int PHONES_DISPLAY_NAME_INDEX = phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
//            int SORT_KEY_INDEX = phoneCursor.getColumnIndex("sort_key");
//            if (phoneCursor.getCount() > 0) {
//
////            mAllContactsList = new ArrayList<SortModel>();
//                while (phoneCursor.moveToNext()) {
//                    String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);
//                    if (TextUtils.isEmpty(phoneNumber))
//                        continue;
//                    String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX);
//                    String sortKey = phoneCursor.getString(SORT_KEY_INDEX);
//                    //System.out.println(sortKey);
//                    Constants sortModel = new Constants();
//                    //优先使用系统sortkey取,取不到再使用工具取
//                    String sortLetters = getSortLetterBySortKey(sortKey);
//                    if (sortLetters == null) {
//                        sortLetters = getSortLetter(contactName);
//                    }
////                    sortModel.setSortLetters(sortLetters);
////                    sortModel.sortToken = parseSortKey(sortKey);
////
////                    sortModel.setName(contactName);
////                    sortModel.setNumber(phoneNumber);
////                    sortModel.setStatus(0);
////                    mAllContactsList.add(sortModel);
//                }
//            }
//            phoneCursor.close();
//        } catch (Exception e) {
//            Toast.makeText(context, "需要开启相应的权限", Toast.LENGTH_SHORT).show();
//        }
//
//        return mAllContactsList;
//    }
//
//    /**
//     * 取sort_key的首字母
//     *
//     * @param sortKey
//     * @return
//     */
//    public static String getSortLetterBySortKey(String sortKey) {
//        if (sortKey == null || "".equals(sortKey.trim())) {
//            return null;
//        }
//        String letter = "#";
//        //汉字转换成拼音
//        String sortString = sortKey.trim().substring(0, 1).toUpperCase(Locale.CHINESE);
//        // 正则表达式，判断首字母是否是英文字母
//        if (sortString.matches("[A-Z]")) {
//            letter = sortString.toUpperCase(Locale.CHINESE);
//        }
//        return letter;
//    }
//
//    /**
//     * 名字转拼音,取首字母
//     *
//     * @param name
//     * @return
//     */
//    public static String getSortLetter(String name) {
//        String letter = "#";
//        if (name == null) {
//            return letter;
//        }
//        //汉字转换成拼音
//        String pinyin = CharacterParser.getInstance().getSelling(name);
//        String sortString = pinyin.substring(0, 1).toUpperCase(Locale.CHINESE);
//
//        // 正则表达式，判断首字母是否是英文字母
//        if (sortString.matches("[A-Z]")) {
//            letter = sortString.toUpperCase(Locale.CHINESE);
//        }
//        return letter;
//    }
//
//
//    //String chReg="[^\\u4E00-\\u9FA5]";//除中文外的字符匹配
//
//    /**
//     * 解析sort_key,封装简拼,全拼
//     *
//     * @param sortKey
//     * @return
//     */
//    public static SortToken parseSortKey(String sortKey) {
//        SortToken token = new SortToken();
//        if (sortKey != null && sortKey.length() > 0) {
//            //其中包含的中文字符
//            String chReg = "[\\u4E00-\\u9FA5]+";//中文字符串匹配
//            String[] enStrs = sortKey.replace(" ", "").split(chReg);
//            for (int i = 0, length = enStrs.length; i < length; i++) {
//                if (enStrs[i].length() > 0) {
//                    //拼接简拼
//                    token.simpleSpell += enStrs[i].charAt(0);
//                    token.wholeSpell += enStrs[i];
//                }
//            }
//        }
//        return token;
//    }
//
//    public static List<Constants> getSimPhoneContacts(Context context) {
//        List<Constants> list = new ArrayList<Constants>();
//        ContentResolver resolver = context.getContentResolver();
//        // 获取Sims卡联系人
//        Uri uri = Uri.parse("content://icc/adn");
//        Cursor phoneCursor = resolver.query(uri, new String[]{ContactsContract.CommonDataKinds.Phone.CONTACT_ID, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
//                        ContactsContract.CommonDataKinds.Phone.NUMBER}, null, null,
//                null);
//
//        if (phoneCursor != null) {
//            while (phoneCursor.moveToNext()) {
//                // 得到手机号码
//                String phoneNumber = phoneCursor.getString(2);
//                // 当手机号码为空的或者为空字段 跳过当前循环
//                if (TextUtils.isEmpty(phoneNumber))
//                    continue;
//                // 得到联系人名称
//                String username = phoneCursor
//                        .getString(1);
//                //Sim卡中没有联系人头像
//                Constants constants = new Constants();
////                constants.setName(username);
////                constants.setNumber(phoneNumber);
//                list.add(constants);
//            }
//            phoneCursor.close();
//
//        }
//        return list;
//    }
//}